<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 关于小数运算: 部分小数在运算的过程中可能会出现失精度的情况

    // 产生问题的原因:
    // 小数在计算机中也是以二进制形式存储的, 有些小数 按照二进制的规则,无法完全存储, 而是存储了近似值   => 导致部分小数运算符过程中可能会出现失精度的情况

    // console.log(100/3); // 0.3333333333333333333333333
    // console.log(0.1 + 0.2);
    // console.log(0.1 + 0.7);

    // console.log(0.1 + 0.5);

    // 怎么解决?
    // 1. 在运算过程中,先将小数等比例扩大相应的倍数,运算完毕在缩小响应的倍数
    // var a = 0.1;
    // var b = 0.2;
    // // var c = a + b;

    // var c = (a*10 + b*10)/10;

    // console.log(c);

    // 2. 官方给所有的数字(number) 提供的一个方法  
    // toFixed(n)   保留n位小数
    // num.toFixed(2)  保留两位小数

    var a = 0.1;
    var b = 0.2;
    var c = (a + b).toFixed(2);
    console.log(c);

    // 常见问题1:
    // var num = "100";
    // console.log(num.toFixed(2)); // 报错  只有数字才能使用toFixed()

    // 常见问题2:
    var result = (100).toFixed(2);
    console.log(result);

  </script>
</body>

</html>